package com.ruoyi.compensationManagement.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 工资表对象 compensation_staffPayroll
 *
 * @author ruoyi
 * @date 2022-10-09
 */
public class CompensationStaffpayroll extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 在编人员工资表id
     */
    private Long staffpayrollId;

    /**
     * 在编人员工号
     */
    @Excel(name = "在编人员工号")
    private String jobnumber;

    /**
     * 姓名
     */
    @Excel(name = "姓名")
    private String nickName;

    /**
     * 员工类型
     */
    @Excel(name = "员工类型", needMerge = true)
    private String employeeType;

    /**
     * 工资年月
     */
    @JsonFormat(pattern = "yyyy-MM")
    @Excel(name = "工资年月", width = 30, dateFormat = "yyyy-MM")
    private Date salaryyearmonth;

    /**
     * 岗位名称
     */
    @Excel(name = "岗位名称")
    private String position;

    /**
     * 薪级名称
     */
    @Excel(name = "薪级名称")
    private String salary;

    /**
     * 岗位工资
     */
    @Excel(name = "岗位工资")
    private BigDecimal positionSalary;

    /**
     * 薪级工资
     */
    @Excel(name = "薪级工资")
    private BigDecimal payWages;

    /**
     * 基础性绩效工资
     */
    @Excel(name = "基础性绩效工资")
    private BigDecimal basicPerformancePay;

    /**
     * 奖励性绩效工资
     */
    @Excel(name = "奖励性绩效工资")
    private BigDecimal incentivizedPerformancePay;

    /**
     * 基础性绩效奖
     */
    @Excel(name = "基础性绩效奖")
    private BigDecimal basicPerformanceAward;

    /**
     * 独生子女保健
     */
    @Excel(name = "独生子女保健")
    private BigDecimal oneChildCare;

    /**
     * 住房补贴
     */
    @Excel(name = "住房补贴")
    private BigDecimal housingSubsidies;

    /**
     * 加班工资
     */
    @Excel(name = "加班工资")
    private BigDecimal overtimePay;

    /**
     * 应发工资
     */
    @Excel(name = "应发工资")
    private BigDecimal wagesPayable;

    /**
     * 扣款部分json（后端数据库读写存储字符串）
     */
    private String deductionsPart;

    /**
     * 扣款部分json(前端数组)
     */
    private List<CompensationDeductionAmountSettings> deductionsPartSql;

    /**
     * 实扣数
     */
    @Excel(name = "实扣数")
    private BigDecimal actualDeduction;

    /**
     * 实发数
     */
    @Excel(name = "实发数")
    private BigDecimal actualSalary;

    /**
     * 是否确定（Y确定）
     */
    private String auditStatus;

    /**
     * 生成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "生成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date staffpayrollCreateTime;

    /**
     * 逻辑删除 0:未删除，1删除
     */
    private String deleted;

    //工资单关联员工状态（随员工状态改变）
    private String userEmployeeStatus;

    //工资单关联员工政治面貌（随员工政治面貌改变）
    private String userPoliticalOutlook;

    //工资单关联用户部门id（随员工部门id改变）
    private Long userDeptId;

    private String searchTime;

    /**
     * 页码
     */
    private int pageNum;

    /**
     * 页数据
     */
    private int pageSize;

    public void setStaffpayrollId(Long staffpayrollId) {
        this.staffpayrollId = staffpayrollId;
    }

    public Long getStaffpayrollId() {
        return staffpayrollId;
    }

    public void setJobnumber(String jobnumber) {
        this.jobnumber = jobnumber;
    }

    public String getJobnumber() {
        return jobnumber;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getNickName() {
        return nickName;
    }

    public void setSalaryyearmonth(Date salaryyearmonth) {
        this.salaryyearmonth = salaryyearmonth;
    }

    public Date getSalaryyearmonth() {
        return salaryyearmonth;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public String getPosition() {
        return position;
    }

    public void setSalary(String salary) {
        this.salary = salary;
    }

    public String getSalary() {
        return salary;
    }

    public void setPositionSalary(BigDecimal positionSalary) {
        this.positionSalary = positionSalary;
    }

    public BigDecimal getPositionSalary() {
        return positionSalary;
    }

    public void setPayWages(BigDecimal payWages) {
        this.payWages = payWages;
    }

    public BigDecimal getPayWages() {
        return payWages;
    }

    public void setBasicPerformancePay(BigDecimal basicPerformancePay) {
        this.basicPerformancePay = basicPerformancePay;
    }

    public BigDecimal getBasicPerformancePay() {
        return basicPerformancePay;
    }

    public void setIncentivizedPerformancePay(BigDecimal incentivizedPerformancePay) {
        this.incentivizedPerformancePay = incentivizedPerformancePay;
    }

    public BigDecimal getIncentivizedPerformancePay() {
        return incentivizedPerformancePay;
    }

    public void setBasicPerformanceAward(BigDecimal basicPerformanceAward) {
        this.basicPerformanceAward = basicPerformanceAward;
    }

    public BigDecimal getBasicPerformanceAward() {
        return basicPerformanceAward;
    }

    public void setOneChildCare(BigDecimal oneChildCare) {
        this.oneChildCare = oneChildCare;
    }

    public BigDecimal getOneChildCare() {
        return oneChildCare;
    }

    public void setHousingSubsidies(BigDecimal housingSubsidies) {
        this.housingSubsidies = housingSubsidies;
    }

    public BigDecimal getHousingSubsidies() {
        return housingSubsidies;
    }

    public void setOvertimePay(BigDecimal overtimePay) {
        this.overtimePay = overtimePay;
    }

    public BigDecimal getOvertimePay() {
        return overtimePay;
    }

    public void setWagesPayable(BigDecimal wagesPayable) {
        this.wagesPayable = wagesPayable;
    }

    public BigDecimal getWagesPayable() {
        return wagesPayable;
    }

    public void setDeductionsPart(String deductionsPart) {
        this.deductionsPart = deductionsPart;
    }

    public String getDeductionsPart() {
        return deductionsPart;
    }

    public void setActualDeduction(BigDecimal actualDeduction) {
        this.actualDeduction = actualDeduction;
    }

    public BigDecimal getActualDeduction() {
        return actualDeduction;
    }

    public void setActualSalary(BigDecimal actualSalary) {
        this.actualSalary = actualSalary;
    }

    public BigDecimal getActualSalary() {
        return actualSalary;
    }

    public void setAuditStatus(String auditStatus) {
        this.auditStatus = auditStatus;
    }

    public String getAuditStatus() {
        return auditStatus;
    }

    public List<CompensationDeductionAmountSettings> getDeductionsPartSql() {
        return deductionsPartSql;
    }

    public void setDeductionsPartSql(List<CompensationDeductionAmountSettings> deductionsPartSql) {
        this.deductionsPartSql = deductionsPartSql;
    }

    public String getUserEmployeeStatus() {
        return userEmployeeStatus;
    }

    public void setUserEmployeeStatus(String userEmployeeStatus) {
        this.userEmployeeStatus = userEmployeeStatus;
    }

    public String getUserPoliticalOutlook() {
        return userPoliticalOutlook;
    }

    public void setUserPoliticalOutlook(String userPoliticalOutlook) {
        this.userPoliticalOutlook = userPoliticalOutlook;
    }

    public Long getUserDeptId() {
        return userDeptId;
    }

    public void setUserDeptId(Long userDeptId) {
        this.userDeptId = userDeptId;
    }

    public String getSearchTime() {
        return searchTime;
    }

    public void setSearchTime(String searchTime) {
        this.searchTime = searchTime;
    }

    public int getPageNum() {
        return pageNum;
    }

    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public Date getStaffpayrollCreateTime() {
        return staffpayrollCreateTime;
    }

    public void setStaffpayrollCreateTime(Date staffpayrollCreateTime) {
        this.staffpayrollCreateTime = staffpayrollCreateTime;
    }

    public String getEmployeeType() {
        return employeeType;
    }

    public void setEmployeeType(String employeeType) {
        this.employeeType = employeeType;
    }

    public String getDeleted() {
        return deleted;
    }

    public void setDeleted(String deleted) {
        this.deleted = deleted;
    }

    @Override
    public String toString() {
        return "CompensationStaffpayroll{" +
                "staffpayrollId=" + staffpayrollId +
                ", jobnumber='" + jobnumber + '\'' +
                ", nickName='" + nickName + '\'' +
                ", employeeType='" + employeeType + '\'' +
                ", salaryyearmonth=" + salaryyearmonth +
                ", position='" + position + '\'' +
                ", salary='" + salary + '\'' +
                ", positionSalary=" + positionSalary +
                ", payWages=" + payWages +
                ", basicPerformancePay=" + basicPerformancePay +
                ", incentivizedPerformancePay=" + incentivizedPerformancePay +
                ", basicPerformanceAward=" + basicPerformanceAward +
                ", oneChildCare=" + oneChildCare +
                ", housingSubsidies=" + housingSubsidies +
                ", overtimePay=" + overtimePay +
                ", wagesPayable=" + wagesPayable +
                ", deductionsPart='" + deductionsPart + '\'' +
                ", deductionsPartSql=" + deductionsPartSql +
                ", actualDeduction=" + actualDeduction +
                ", actualSalary=" + actualSalary +
                ", auditStatus='" + auditStatus + '\'' +
                ", staffpayrollCreateTime=" + staffpayrollCreateTime +
                ", deleted='" + deleted + '\'' +
                ", userEmployeeStatus='" + userEmployeeStatus + '\'' +
                ", userPoliticalOutlook='" + userPoliticalOutlook + '\'' +
                ", userDeptId=" + userDeptId +
                ", searchTime='" + searchTime + '\'' +
                ", pageNum=" + pageNum +
                ", pageSize=" + pageSize +
                '}';
    }
}
